import time
from public.action import *
from public.business import *
from public.testData import *
from public.tools import*


testCase="DBshop002_余额支付流程"
#第二个测试用例
firefox=openBrowser(url) #实例化浏览器
DBshopLogin(firefox,userName,password)
# "1.在首页搜索""小米"",点击搜索按钮
firefox.find_element_by_xpath('//input[@name="keywords"]').send_keys('小米')
# 2.选择小米mix3,加入到购物车,点击购物车按钮
firefox.find_element_by_xpath('//input[@type="submit"]').click()
firefox.find_element_by_xpath('//a[@href="/dbshop/goods/8/2"]').click()
#调用函数切换页面
switchWindow(firefox,2)
#在新页面中点击加入购物车按钮
firefox.find_element_by_id('add_cart_submit').click()
time.sleep(2)
#点击去购物车结算按钮
firefox.find_element_by_link_text('去购物车结算').click()
# 3.点击"去结算"按钮
firefox.find_element_by_link_text('去结算').click()
# 4.默认地址已经被选择,点击下一步按钮
firefox.find_element_by_xpath('//input[@value="下一步"]').click()
# 5.支付方式选择""余额支付"",点击确认订单
firefox.find_element_by_xpath('//input[@value="yezf"]').click()
firefox.find_element_by_xpath('//input[@value="确认订单"]').click()
# 6.点击马上支付，支付成功。
orderNO=firefox.find_element_by_xpath('(//font[@color="color:#ED145B"])[2]').text
rootPath=get_pro_rootpath()
writeFile(rootPath+'\public\orderID.txt',orderNO)
print(orderNO)# 将订单编号写入到文件中
firefox.find_element_by_xpath('//input[@value="马上去支付"]').click()
# firefox.find_element_by_id('state_info').send_keys('余额支付')
# firefox.find_element_by_xpath('//button[text()="提交支付凭证"]').click()
# 7.登录后台管理系统,地址是""http://localhost/dbshop/admin"",
firefox.get(urlAdmin)
DBshopLoginAdmin(firefox)
# 8.点击商品管理订单管理，找到刚才前台提交的订单，点击“编辑查看”。
time.sleep(3)
DBshopEnterMenu2(firefox,'销售管理','订单管理')
#搜索订单
time.sleep(5)
firefox.find_element_by_name('order_sn').send_keys(orderNO)
firefox.find_element_by_xpath('//button').click()
firefox.find_element_by_link_text('编辑查看').click()
# firefox.find_element_by_link_text('付款操作').click()
# firefox.find_element_by_xpath('//option[text()="已付款"]').click()
# firefox.find_element_by_id('state_info').send_keys('已在余额中收到款项')
# firefox.find_element_by_xpath('//button').click()
# 9.点击发货操作按钮，编辑快递单号“1000000000” 发货说明“保证正品”，点击“点击发货”按钮。
firefox.find_element_by_link_text('发货操作').click()
firefox.find_element_by_xpath("//input[@id='express_number']").send_keys("1000000000")
firefox.find_element_by_id('state_info').send_keys('保证正品')
firefox.find_element_by_xpath('//button').click()
# 10.进入前台我的订单—已发货，点击“确认收货”按钮，完成订单。
#登录前台账号
firefox.get(url)

# 11.到dbshop前台查看我的订单""交易完成""中,检查上面的订单状态"
firefox.find_element_by_link_text('我的订单').click()
#搜索已经发货的订单
firefox.find_element_by_partial_link_text('已发货').click()
firefox.find_element_by_name('search_order_sn').send_keys(orderNO)
firefox.find_element_by_xpath("//button[text()='搜索']").click()
firefox.find_element_by_xpath("//button[text()='确认收货']").click()
time.sleep(2)
firefox.find_element_by_xpath("//button").click()
firefox.switch_to.alert.accept()

#点击确认订单
#点击交易完成
firefox.find_element_by_partial_link_text('交易完成').click()
firefox.find_element_by_name('search_order_sn').send_keys(orderNO)
time.sleep(2)
firefox.find_element_by_xpath('//button').click()
#断言
try:
    firefox.find_element_by_link_text(orderNO).is_displayed()  #is_displayed()函数判断元素是否显示
    writeLog("%s 测试通过"%testCase)
except:
    writeLog("%s 测试失败" % testCase)
    getPhoto(firefox)
firefox.quit()



